package com.chinaunicom.jdbc;

import org.springframework.context.ApplicationContext;
import org.springframework.context.support.ClassPathXmlApplicationContext;

/**
 * @author liry
 * @version 1.0
 * @date Created on 2022/1/14 9:43
 * Description:
 *
 * JDBC 加载过程:
 * <p> 1. 加载 mysql 驱动</p>
 *      <li> 通过 DriverManager 自动检测 Driver驱动，执行 registerDriver()注册驱动 && loadInitialDrivers()加载驱动 </li>
 *      <li> 通过 Class.forName() 手动加载数据库驱动 </li>
 *
 * <p> 2. 创建 Connection 数据库连接 </p>
 * <p> 3. 准备 sql语句 </p>
 * <p> 4. 预编译 PreparedStatement (Statement) </p>
 * <p> 5. 执行回调方法 </p>
 *      <li> 执行 sql 语句 </li>
 *      <li> 处理返回数据集 ResultSet </li>
 * <p> 6. 关闭连接 </p>
 */
public class JdbcTest {
    public static void main(String[] args) {
        ApplicationContext applicationContext = new ClassPathXmlApplicationContext("classpath:beans-jdbc.xml");
        OrderService orderService = (OrderService) applicationContext.getBean("orderService");

//        Order order = new Order();
//        order.setId("3");
//        order.setName("微信第一单");
//        order.setCount(100);
//        orderService.save(order);
//
//
//        List<Order> list = orderService.list();
//        list.forEach(v->{
//            System.out.println(v);
//        });

//        System.out.println("-------select -----");
//        List<Map<String, Object>> result = orderService.findAll();
//        result.forEach(v -> {
//            for (Map.Entry<String, Object> entry : v.entrySet()) {
//                System.out.println(entry.getKey() + ":" + entry.getValue());
//            }
//            System.out.println("---------------");
//        });

        orderService.select().forEach(v -> {
            System.out.println(v);
        });


//        System.out.println("------getOne -------");
//        System.out.println(orderService.getOne("2"));


//        List<String> strings = orderService.selectIds();
//        strings.forEach(v->{
//            System.out.println(v);
//        });
    }
}
